docs: seed worktrees with a copy of real userdata instead of banning it - #4949
Conversation
…ng it Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 28852a4. Configure here.
| ```bash | ||
| mkdir -p .t3/userdata | ||
| rm -f .t3/userdata/state.sqlite* # VACUUM INTO refuses to overwrite | ||
| bun -e "new (require('bun:sqlite').Database)(process.env.HOME + '/.t3/userdata/state.sqlite', { readonly: true }).run(\"VACUUM INTO '.t3/userdata/state.sqlite'\")" |
There was a problem hiding this comment.
Re-seed while dev server runs
Medium Severity
The snapshot recipe removes and recreates .t3/userdata/state.sqlite* in the worktree but does not say to stop the worktree’s own vp run dev first. Re-running it while that server still has the destination database open can race or leave a corrupt or inconsistent sandbox copy, unlike the plain-cp warning about an open source.
Reviewed by Cursor Bugbot for commit 28852a4. Configure here.
## What's Changed * fix(connect): suggest a serve command that matches how you ran connect by @t3dotgg in pingdotgg/t3code#4897 * fix(mobile): stop shared content errors in Personal Team builds by @t3dotgg in pingdotgg/t3code#4943 * perf(mobile): sends respond instantly, thread opens stop freezing by @t3dotgg in pingdotgg/t3code#4882 * fix(web): show Codex fast mode as a bolt by @t3dotgg in pingdotgg/t3code#4947 * docs: seed worktrees with a copy of real userdata instead of banning it by @t3dotgg in pingdotgg/t3code#4949 **Full Changelog**: pingdotgg/t3code@v0.0.32-nightly.20260730.954...v0.0.32-nightly.20260730.955 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.32-nightly.20260730.955
* fix(desktop): restore T3 Connect sign-in (pingdotgg#4809) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Simplify files panel header (pingdotgg#4828) * build(desktop): reduce installed app size by ~300MB (pingdotgg#4824) * Update model version from claude-opus-4-8 to claude-opus-5 (pingdotgg#4832) * Preserve the thread shell while detail loads (pingdotgg#4830) * Reduce idle work and disk churn with native resource diagnostics (pingdotgg#2679) Co-authored-by: codex <codex@users.noreply.github.com> * fix(server): detect repositories after initialization (pingdotgg#4848) * perf(server): merge separate staged/unstaged numstat calls into single diff HEAD --numstat (pingdotgg#4843) * fix(git): disable external diff for review diff previews (pingdotgg#4854) * Fix editable file focus and live syntax highlighting (pingdotgg#3979) * fix(web): remember the rendered-markdown choice across threads (pingdotgg#4853) Co-authored-by: Simon Doba <simon.doba@orbit.de> Co-authored-by: Claude Opus 5 <noreply@anthropic.com> * chore(release): prepare v0.0.31 * fix(mobile): reduce thread feed scroll jank (pingdotgg#4874) * fix(web): restore sidebar v2 thread actions and terminal icon (pingdotgg#4712) * fix(web): settle button now works on hover, not just right-click (pingdotgg#4905) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(clients): disable add project while disconnected (pingdotgg#4834) * fix(composer): hide default Codex service tier (pingdotgg#4784) * docs: link iOS and Android app store downloads (pingdotgg#4902) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(web): align remote server update action (pingdotgg#4731) * fix(connect): suggest a serve command that matches how you ran connect (pingdotgg#4897) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(mobile): stop shared content errors in Personal Team builds (pingdotgg#4943) * perf(mobile): sends respond instantly, thread opens stop freezing (pingdotgg#4882) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(web): show Codex fast mode as a bolt (pingdotgg#4947) * docs: seed worktrees with a copy of real userdata instead of banning it (pingdotgg#4949) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(mobile): support dragged images in the composer (pingdotgg#4953) * fix(mobile): stop long iOS threads from jumping while scrolling up (pingdotgg#4867) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(web): keep worktree default when switching a draft's machine (pingdotgg#4964) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * perf(mobile): reconnect environments immediately on resume (pingdotgg#4878) * feat(web): pasting a huge screenshot now compresses it instead of erroring (pingdotgg#4967) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * feat(web): regenerate thread titles from sidebar (pingdotgg#4810) * fix(web): show server update progress through reconnect (pingdotgg#4903) --------- Co-authored-by: Alex <me@pixp.cc> Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: wukko <me@wukko.me> Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Wout Stiens <71498452+StiensWout@users.noreply.github.com> Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com> Co-authored-by: ohbentos <72638975+ohbentos@users.noreply.github.com> Co-authored-by: Jake Leventhal <jakeleventhal@me.com> Co-authored-by: Simon Doba <simon.doba@hotmail.de> Co-authored-by: Simon Doba <simon.doba@orbit.de> Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com> Co-authored-by: Gabriel De Andrade <30420087+gabrielelpidio@users.noreply.github.com> Co-authored-by: Jono Kemball <Noojuno@users.noreply.github.com> Co-authored-by: Theo Browne <me@t3.gg> Co-authored-by: Max Katz <me@maxkatz.me>


AGENTS.md told agents to never touch
~/.t3/userdata, so worktree testing happened against empty or stale~/.t3/devdata. An empty database is a bad test.The rule is now "never write to it": reading and copying from the live install are explicitly fine, and the Test data section recommends snapshotting the real database into the worktree's
.t3/userdatawithVACUUM INTO(safe against a live source, verified against the running install on this box). The plain-cpcaveats about-wal/-shmsiblings and open servers remain for the offline path.Written by Claude Fable 5 via Claude Code.
🤖 Generated with Claude Code
Note
Low Risk
Documentation-only change to contributor agent rules; no runtime or security behavior in the product changes.
Overview
Updates AGENTS.md so agents treat
~/.t3/userdataas read/copy OK, write forbidden, instead of broadly “don’t touch the live install.” Rule 2 now points readers to Test data for using real data safely.The Test data section recommends seeding the worktree’s
.t3/userdatafrom~/.t3/userdata(preferred) or~/.t3/dev, and adds aVACUUM INTOone-liner to snapshot SQLite while the live server still has the source open. The older “copy only from~/.t3/dev, never userdata” guidance is removed;cpstill requires closed sources and-wal/-shmsiblings.Reviewed by Cursor Bugbot for commit 28852a4. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Seed worktree test data with copies of real userdata instead of banning it
Updates AGENTS.md to replace the blanket prohibition on using real user data in worktrees with a recommended workflow for copying it safely.
~/.t3/userdatais allowed; only writing to the live install (starting a server against it, opening it read-write, or running cleanup) is prohibited.sqlite VACUUM INTOviabunto produce a consistentstate.sqlitewhile the source database may still be open.cpis only safe when no server has the source open, must include-waland-shm, and that live file copies will be corrupt.settings.jsoncan optionally be copied in, and that symlinks must never be used.Macroscope summarized 28852a4.